package osb.map.map;

import osb.map.publicdata.Public_Operate_And_Data;
import android.location.Location;
import android.widget.Toast;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.LocationListener;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MyLocationOverlay;

/**
 * 我的位置定位类
 * UseMyLocationOverlay(); 
 * @author Administrator
 *
 */

public class Map_MyLocation extends MapActivity
{
	static LocationListener mLocationListener = null; 
	static MyLocationOverlay mLocationOverlay = null;  
	static GeoPoint lastPoint;           // 最后一次获取的坐标
	static boolean IsGetLocation = true; // 是否开启定位功能

	static void CloseLocationListener()  // 关闭监听
	{
		// 不要真的关闭
		// 移除图层而已
		Map.Public_Static_Map.mapView.getOverlays().remove(mLocationOverlay); 																
		Map.Public_Static_Map.mapView.invalidate();
	}

	// 用LocationListener 然后自己画
	static void UseLocationListener() 
	{
			Toast.makeText(Map.Public_Static_Map, "正在获取您的定位",Toast.LENGTH_SHORT).show();
			// 注册定位事件
			mLocationListener = new LocationListener()
			{
				@Override
				public void onLocationChanged(Location location)
				{
					if (location != null)
					{
						GeoPoint pt = new GeoPoint((int) (location.getLatitude() * 1e6),(int) (location.getLongitude() * 1e6)); 
						lastPoint = pt;
						Public_Operate_And_Data.CurrentPoint=pt;    //当前的位置
						if (Public_Operate_And_Data.OpenTrack_me)   // 我的轨迹跟踪功能已经打开
						{
							Map_Track.OpenTrack(0, pt);             // 把我最新的位置传进去处理
						}
					}
				}
			};
			Map.Public_Static_Map.mapManager.getLocationManager().requestLocationUpdates(mLocationListener); // 定位注册
			if (!(lastPoint == null)) // 位置不变换是也移动到当前坐标
			{
				Map.Public_Static_Map.mapView.getController().animateTo(lastPoint);
				Map.Public_Static_Map.mapView.getController().setZoom(16);
			}
 		// 添加定位图层
		if (mLocationOverlay != null)
			Map.Public_Static_Map.mapView.getOverlays().remove(mLocationOverlay); // 先删除上一个图层 如果存在
		    mLocationOverlay = new MyLocationOverlay(Map.Public_Static_Map,Map.Public_Static_Map.mapView);
		    mLocationOverlay.enableMyLocation(); // 启用定位 实时定位
		    Map.Public_Static_Map.mapView.getOverlays().add(mLocationOverlay);
	}

	@Override
	protected void onPause()
	{
		super.onPause();
	}

	@Override
	protected void onResume()
	{
		super.onResume();
	}

	@Override
	protected boolean isRouteDisplayed()
	{
		return false;
	}

}
